01 Otimizando o build com Scope Hoisting

Próxima Atividade
  • Sugerir melhoria
Play
Current Time 0:00
/
Duration Time 0:00
Remaining Time -0:00
Stream TypeLIVE
Loaded: 0%
Progress: 0%
0:00
Fullscreen
00:00
Mute
Playback Rate
  • 2x
  • 1.5x
  • 1.2x
  • 1x
  • 0.8x
  • 0.7x
1x
Subtitles
  • subtitles off
Captions
  • captions off
Chapters
  • Chapters
HD

Transcrição

Vamos aplicar uma série de boas práticas. O Webpack, no passado, colocava cada módulo em uma closure e realizava um processo bem trabalhoso. Porém, é possível diminuir a quantidade de closures durante a criação dos módulos, isso acelera o tipo de processamento e carregamento no navegador.

Vale ressaltar que falamos do tempo no qual os módulos são parseados, executados e processados. Como podemos fazer isso? Nosso escopo é pequeno e por isso, a diferença será quase imperceptível. Mas é uma boa prática adotar essa abordagem na sua aplicação. É o que faremos em modo de produção.

Dentro do if de production, adicionaremos optimize.ModuleConcatenationPlugin() antes do babiliPlugin.

if (process.env.NODE_ENV == 'production') {

    plugins.push(new webpack.optimize.ModuleConcatenationPlugin());
    plugins.push(new babiliPlugin());

    plugins.push(new optimizeCSSAssetsPlugin({
        cssProcessor: require('cssnano'),
        cssProcessorOptions: { 
            discardComments: {
                removeAll: true 
            }
        },
        canPrint: true
    }));
}

Com isso, as alterações serão feitas no módulo, fazendo com que seu processamento ocorra mais rapidamente. Esta é uma novidade introduzida a partir da versão Webpack 3 e que estamos usando na nossa aplicação.

Em seguida, no Terminal, usaremos o comando npm run build-prod. O build de produção será mais demorado dessa vez, no entanto, o bundle.js será gerado já com a otimização.

Tirar dúvida Próxima Atividade
ícone Webpack: Manipulando módulos na sua webapp

Webpack: Manipulando módulos na sua webapp

100%
Aula06 de 06

Boas práticas

Atividades 1 de 16

  • 01 Otimizando o build com Scope Hoisting 03min
  • 02 Resumo
  • 03 Separando o nosso código das bibliotecas 08min
  • 04 CommonsChunkPlugin
  • 05 Gerando a página principal automaticamente 09min
  • 06 Code splitting e Lazy loading 09min
  • 07 System.import vs import 04min
  • 08 Sobre code splitting e lazy loading
  • 09 Quais são os arquivos para distribuição? 02min
  • 10 Alterando o endereço da API no build de produção 08min
  • 11 API de desenvolvimento e de produção
  • 12 O que aprendemos?
  • 13 Consolidando seu conhecimento
  • 14 Considerações finais 01min
  • 15 Download do projeto final
  • 16 Entendendo o que fizemos

Aulas

Outros Links

Fórum Trocar Curso
Gravatar de Marcos Katsumi Kay

Marcos Katsumi Kay 34.0k xp

Logo da Alura